include "../model/TProgramDirector.thrift"
include "../model/TQuery.thrift"
namespace java com.iqiyi.pps.epg.api.server.web.program

service ProgramDirectorWebService {
    i32 addDirectorEntity(1:TProgramDirector.TProgramDirector entity);
    i32 editDirectorEntity(1:TProgramDirector.TProgramDirector entity);
    i32 delDirectorEntity(1:i32 id);
    i32 updateDirectorMainResource(1:i64 programQipuId, 2:i32 mainResourceId, 3:string opUser);

    i32 addResourceEntity(1:TProgramDirector.TProgramDirectorResource entity);
    i32 editResourceEntity(1:i32 id, 2:i32 isDefaultBackup, 3:string signalName, 4:i32 playStatus);
    i32 delResourceEntity(1:i32 id);
    i32 switchResourceEntity(1:i32 id, 2:i32 directorId,3:i64 time,4:i32 playCounts);
    i32 updateResourcePlayCounts(1:i32 id, 2:i32 playCounts);
    i32 setDirectorResourceId(1:i64 programQipuId, 2:i32 playResourceId, 3:i32 downResourceId);

    bool saveLog(1: TProgramDirector.TProgramDirectorLog entity);

    TProgramDirector.TProgramDirectorPage getDirectorList(1:TQuery.TPage page,2:TQuery.TFilter filter,3:bool fullMode);
    list<TProgramDirector.TProgramDirectorResource> getDirectorResourceList(1:TQuery.TFilter filter);
    TProgramDirector.TProgramDirectorLogPage getLogList(1:TQuery.TPage page, 2:TQuery.TFilter filter);

    TProgramDirector.TProgramDirector getDirectorEntity(1:i32 id );
    i32 stopDirector(1:i32 directorId );
    i32 startDirector(1:i32 directorId );
    i32 switchToBackUp(1:i32 directorId);
    TQuery.TResponse delDirector(1:i32 directorId);
    TQuery.TResponse releaseDirector(1:i32 directorId);

    i32 addEffect(1:TProgramDirector.TProgramDirectorEffect entity);
    i32 editEffect(1:i32 id, 2:string url, 3:string name, 4:string location, 5:string extraInfo, 6:string status, 7:i32 isPreview, 8:string opUser);
    i32 deleteEffect(1:i32 id);
    list<TProgramDirector.TProgramDirectorEffect> getEffectList(1:TQuery.TFilter filter);

    i32 addCommentary(1:TProgramDirector.TProgramDirectorCommentary entity);
    i32 editCommentary(1:i32 id, 2:string name, 3:i64 programQipuId, 4:string streamUrl, 5:string volumn, 6:i32 status);
    i32 deleteCommentary(1:i32 id);
    list<TProgramDirector.TProgramDirectorCommentary> getCommentaryList(1:TQuery.TFilter filter);
}